import service from "../service.js";
import contentType from "@/common/config/content-type";

/** 公共前缀地址 */
const baseUrl = "/deliveryTemplate/";

/**
 * 新增提货单模版
 * @param {*} parameter 请求参数
 * @returns
 */
const insert = (parameter) => {
    const config = {
        type: contentType.Json,
        loadon: true,
    };
    return service.post(baseUrl + "insert", parameter, config);
};

/**
 * 生成提货单
 * @param {*} parameter 请求参数
 * @returns
 */
const generateDeliveryOrder = (parameter) => {
    const config = {
        type: 'blob',
        loadon: true,
    };
    return service.post(baseUrl + "generateDeliveryOrder", parameter, config);
}

/**
 * 分页查询提货单模版
 * @param {*} parameter 请求参数
 * @param {*} pagination 分页参数
 * @returns
 */
const selectPage = (parameter, pagination) => {
    const config = {
        type: contentType.Json,
        loadon: true,
        params: { ...pagination }
    };
    return service.post(baseUrl + "selectPage", parameter, config);
};

/**
 * 修改提货单模版
 * @param {*} parameter 请求参数
 * @returns
 */
const update = (parameter) => {
    const config = {
        type: contentType.Json,
        loadon: true,
    };
    return service.put(baseUrl + "update", parameter, config);
};

/**
 * 获取模版标题字段
 * @returns
 */
const getTemplateTitle = () => {
    const config = {
        type: contentType.Form,
        loadon: true,
    };
    return service.get(baseUrl + "getTemplateTitle", config);
}

/**
 * 预览提货单
 * @param {*} parameter 请求参数
 * @returns
 */
const previewDeliveryOrder = (id) => {
    const config = {
        type: contentType.Form,
        responseType: "blob",
        loadon: true,
    };
    return service.get(baseUrl + `previewDeliveryOrder?id=${id}`, config);
}

/**
 * 导出表格
 * @param {*} parameter 请求参数
 * @returns
 */
const exportDeliveryOrder = (parameter) => {
    const config = {
        type: contentType.Json,
        loadon: true,
    };
    return service.post('/trainPickRecord/export',parameter, config);
}

/** 提货单管理-提货单模板 */
export default {
    selectPage,
    update,
    insert,
    generateDeliveryOrder,
    getTemplateTitle,
    previewDeliveryOrder,
    exportDeliveryOrder
};
